\section{Standarti}
\label{sec:standards}



Pasaulē pašlaik ir pieejami standarti, kas apraksta portālu API, kuru izmanto
portleti. Standartizācijas rezultāts ir izstrādātā koda pārnesamība uz jebkuru
platformu ar konkrētu \emph{API}.

Pieejamie standarti un \emph{API} ir:
\begin{itemize}
  \item JSR 168 \ref{subsec:jsr168}
  \item JSR 286 \ref{subsec:jsr286}
  \item IBM Portlet API 
  \item Liferay portlet API
\end{itemize}

IBM portletu API ir porletu \emph{API}, ko izstrādāja IBM un tika izmantots IBM
portālā WebSphere, bet jaunākajā WebSphere Portal Express versijā 6.1.5
\emph{API} ir novecojis~\cite{ibm:portlet-api}, tāpēc sīkāk tas netiek
apskatīts bakalaura darba ietvaros.

Liferay un IBM portletu \emph{API} netiek apskatīti sīkāk, jo tie nav
standarti un šie \emph{API} ir portālu atkarīgi, t.i. nav iespējams tos izmantot
citā portālā.



\subsection{JSR 168}
\label{subsec:jsr168}
\emph{JSR-168} ir pirmais portletu standarts, kas izstrādāts 2003. gadā.
Galvenā īpašība, izstrādājot portletu, ir portletu saskarnes neatkarība no cita
portleta, portleta saturs nav pilnīga \emph{HTML} lapa, bet tikai daļa no tās.

Portletam ir divi pieprasījumu veidi:
\begin{itemize}
  \item \emph{render request} -- pieprasījums datu attēlošanai, daļa no
  \emph{API} funkcijām nevar būt izmantota \emph{render} fāzē
  \item \emph{action request} --  pieprasījums lietotāja darbību apstrādei,
  piemēram, formas aizpildīšana
\end{itemize}

Portletiem arī ir stāvokļi, kurus var arī paplašināt. Noklusētie no tiem ir:
\begin{itemize}
  \item \emph{econ} -- portleta rediģēšanas fāze, kur var mainīt portleta
  iestatījumus
  \item \emph{help} -- porletta palīdzības skats, kurā var nodefinēt palīdzības
  informāciju
  \item \emph{view} -- noklusēti izmantotais skats, kurā notiek datu attēlošana
\end{itemize}

\subsection{JSR 286}
\label{subsec:jsr286}

Portletu standarts \emph{JSR-286} manto funkcionalitāti no \emph{JSR-168}
(\ref{subsec:jsr168}) un paplašina to.

Svarīgākās standarta iespējas ir:
\begin{itemize}
  \item Notikumu (\emph{event}) atbalsts, kad katrs portlets var izraisīt kādu
  notikumu, un citi portleti var atbildēt uz tiem. Notikumu atbalsts strādā
  tikai \emph{request} fāzē.
  \item resursu pieprasījumu fāze (\emph{resource requests}), kura ir domāta
  statisko datu atgriešanai, datiem bez papildus apstrādes (bildes,
  \emph{AJAX}, \emph{JavaScript}, \emph{CSS})
\end{itemize}


%84lpp 171
